📦 III. 알고리즘과 프로그래밍 > 03 순차적 데이터 저장

변수와 리스트

값을 담아 두는 마법 상자 변수, 여러 값을 순서대로 줄 세우는 리스트!
프로그램이 데이터를 기억하는 방법을 직접 만지며 배워 봅시다. 📦

변수
값 바꾸기
리스트

학습 목표

[9정03-03] 자료를 변수와 리스트로 저장하고 활용한다

  • 변수가 무엇인지 설명하고, 변수에 값을 저장·변경할 수 있다.
  • 임시 변수를 이용해 두 변수의 값을 맞바꾸는 과정을 추적할 수 있다.
  • 리스트로 여러 데이터를 순서대로 저장하고, 추가·삭제·접근할 수 있다.

생각 열기 🤔

학교 사물함을 떠올려 봐요. 사물함마다 번호(이름표)가 붙어 있고, 그 안에는 내 물건이 들어 있죠. 물건을 꺼내고 다른 걸 넣으면, 같은 사물함이지만 속 내용은 바뀌어요.

프로그램에서 데이터를 담아 두는 변수가 바로 이 사물함과 똑같아요! 🗄️ 이름표(변수 이름)가 붙은 상자에 값을 넣어 두고, 필요할 때 꺼내 쓰는 거예요.

💡 그리고 사물함이 여러 칸 줄지어 있는 게 바로 리스트랍니다.

1. 변수(Variable)란?

값을 담아 두는, 이름표 붙은 상자

변수는 값을 담아 두는 이름이 있는 저장 공간이에요. "변할 수 있는 수"라는 뜻처럼, 같은 변수라도 담긴 값은 바뀔 수 있어요.

번호가 붙은 우체국 사서함들

📮 변수는 '이름표 붙은 상자'예요

우체국 사서함을 보세요. 칸마다 번호(이름)가 붙어 있고 그 안에 편지(값)를 넣어 둬요. 변수도 똑같아요 — 점수라는 이름의 칸에 100을 넣어 두는 거죠. 편지가 바뀌듯 값도 바뀔 수 있어요.

© Joe Mabel · CC BY-SA 3.0 · Wikimedia Commons

🏷️ 변수의 두 가지 부분

100

(상자 속 내용)

점수

이름 (이름표)

점수 = 100 → "점수라는 상자에 100을 넣어라"

🎮 변수는 어디에 쓰일까?

  • 게임의 점수·생명 수·레벨을 기억해 둬요.
  • 타이머의 남은 시간을 1초씩 줄여 가며 저장해요.
  • 쇼핑 앱의 장바구니 합계 금액을 담아 둬요.
💡 변수가 없다면? 컴퓨터는 방금 계산한 값도 곧바로 잊어버려요! 변수는 컴퓨터의 메모(기억)예요.

2. 값을 저장하고 바꾸기

대입(=)은 "넣어라"라는 명령

점수 = 100 에서 = 는 "같다"가 아니라 "오른쪽 값을 왼쪽 상자에 넣어라"라는 대입 명령이에요. 새 값을 넣으면 이전 값은 지워지고 덮어써져요!

🧩 스크래치에서는 이렇게 생겼어요

점수 ▾ 을(를) 100 로 정하기 ↑ 변수에 값을 딱 정해서 넣기 (대입) 점수 ▾ 을(를) 1 만큼 바꾸기 ↑ 지금 값에 1을 더하기 (점수 ← 점수 + 1)

📦 인터랙티브 · 변수 상자에 값 넣어 보기

점수 상자에 값을 넣고, 바꿔 보세요. 새 값을 넣으면 이전 값이 어떻게 덮어써지는지 보여줘요!

점수
0

📜 실행 기록

버튼을 누르면 변수에 일어난 일이 여기에 기록돼요.

💡 변수는 한 번에 값 하나만 담을 수 있어요. 새 값을 넣으면 이전 값은 사라지고 다시 꺼낼 수 없어요!

3. 두 변수의 값 맞바꾸기

임시 변수가 꼭 필요한 까닭

A에는 5, B에는 3이 들어 있어요. 두 값을 맞바꾸고 싶어요 (A=3, B=5로!). 그런데 그냥 A = B 부터 하면? A의 원래 값 5가 덮어써져 사라져요! 그래서 잠깐 보관할 임시 변수가 필요해요.

🔁 인터랙티브 · 값 바꾸기 한 단계씩 따라가기

다음 단계를 누르며 세 상자(A · B · 임시)의 값이 어떻게 움직이는지 지켜보세요!

5

A

3

B

비어
있음

임시

시작: A에는 5, B에는 3이 들어 있어요. "다음 단계"를 눌러 값을 맞바꿔 봅시다!
단계 0 / 3

💻 의사코드로 보면

# A=5, B=3 을 맞바꾸기
임시 = A   # 임시=5 (A를 잠깐 보관)
A = B   # A=3
B = 임시  # B=5 → 교환 완성!

4. 리스트(List)란?

여러 값을 순서대로 줄 세우는 상자

변수는 값 하나만 담을 수 있어요. 그런데 반 친구 30명의 점수처럼 값이 많다면? 변수 30개를 만들 순 없죠. 이럴 때 리스트를 써요. 리스트는 여러 칸이 줄지어 있는 사물함이에요. 각 칸에는 순서(번호)가 있어요!

🍎 예: "좋아하는 과일" 리스트

🍎

1번

🍌

2번

🍇

3번

"2번 값을 꺼내 줘"라고 하면 🍌가 나와요. 순서 번호로 콕 집어 꺼낼 수 있죠!
※ 스크래치 리스트는 1번부터 셉니다. (파이썬 등은 0번부터)

변수

하나를 담아요. (상자 1개)

리스트

여러 개를 순서대로 담아요. (상자 여러 칸)

5. 리스트 다루기

추가하고, 빼고, 꺼내 보기

추가

리스트 끝(또는 원하는 자리)에 값을 새로 넣어요.

삭제

특정 칸의 값을 빼면 뒤 칸들이 한 칸씩 당겨져요.

접근

"몇 번째 값?"처럼 순서로 콕 집어 꺼내요.

🧪 인터랙티브 · 리스트 직접 다뤄 보기

값을 추가·삭제하고, 번호로 꺼내 보세요. 리스트가 실시간으로 바뀌어요! (스크래치처럼 1번부터 세요)

빠른 추가:
|
💡 리스트는 칸 수가 자유롭게 늘었다 줄었다 해요. 값을 추가하면 번호도 자동으로 매겨져요!

참고 — 변수에 담는 값에도 '종류'가 있어요 (성취기준 밖 심화)

🔢

정수

int · 3, -7, 100

📏

실수

float · 3.14

🔤

문자(열)

string · "안녕"

논리

boolean · 참/거짓

🧠 변수 = 메모리의 이름표 붙은 칸

컴퓨터는 메모리(기억 공간)의 한 칸에 값을 넣고, 변수 이름으로 그 칸을 찾아가요.

0️⃣ 리스트 번호는 0부터!

많은 프로그래밍 언어에서 리스트의 첫 칸은 1번이 아니라 0번이에요. (파이썬·자바스크립트 등)

핵심 정리

변수

값을 담아 두는 이름이 있는 상자. 담긴 값은 언제든 바뀔 수 있어요.

대입(=)

"오른쪽 값을 왼쪽 상자에 넣어라." 새 값을 넣으면 이전 값은 덮어써져요.

값 맞바꾸기

두 변수의 값을 바꾸려면 임시 변수에 잠깐 보관해야 값을 잃지 않아요.

리스트

여러 값을 순서대로 담는 상자. 번호로 값을 꺼내고, 추가·삭제할 수 있어요.

스스로 점검하기

5문제로 오늘 배운 내용을 확인해요

1

변수를 가장 잘 설명한 것은?

2

점수 = 100 다음에 점수 = 50 을 실행하면 점수의 값은?

3

두 변수 A, B의 값을 맞바꿀 때 꼭 필요한 것은?

4

변수리스트의 차이로 옳은 것은?

5

리스트 [🍎, 🍌, 🍇] 에서 스크래치 기준 2번 항목은?